package com.generator.purchaseManage.purchaseOrderManage.service;

import com.generator.purchaseManage.purchaseOrderManage.pojo.Brand;
import com.generator.purchaseManage.purchaseOrderManage.pojo.Product;
import com.generator.purchaseManage.purchaseOrderManage.pojo.Type;
import com.generator.purchaseManage.purchaseOrderManage.pojo.CPurchaseCon1;
import com.generator.purchaseManage.purchaseOrderManage.pojo.IncomingWarehouse;
import com.generator.util.PageModel;

import java.util.List;


public interface purchaseOrderManageService {

    // 查询所有采购单管理信息
    public List<CPurchaseCon1> getAllPurchaseOrderManage(CPurchaseCon1 purchase);

    // 查询所有采购单管理信息（分页）
    public PageModel<CPurchaseCon1> getAllPurchaseOrderManage(CPurchaseCon1 purchase, PageModel<CPurchaseCon1> pageModel);

    // 添加厂商管理信息 addPurchaseOrderManage
    public int addPurchaseOrderManage(CPurchaseCon1 conn);

    // 添加采购明细(多表添加) addPurchaseOrderManage
    public int addPurchaseOrderManage2(CPurchaseCon1 conn);

    // 查询单个采购单管理信息
    public CPurchaseCon1 getOnePurchaseOrderManage(CPurchaseCon1 conn);

    // 删除单个采购单管理信息
    public int deletePurchaseOrderManage(String id);

    //    采购单管理信息分类查询
    public List<CPurchaseCon1> vaguePurchaseOrderManage(CPurchaseCon1 conn);

    //    采购单管理信息分类查询（分页）
    public PageModel<CPurchaseCon1> vaguePurchaseOrderManage(CPurchaseCon1 conn, PageModel<CPurchaseCon1> pageModel);

    // 查询采购单信息下面部分
    public CPurchaseCon1 getOnePurchaseOrderManageDown(CPurchaseCon1 conn);

    // 修改采购单管理列表回显数据
    public CPurchaseCon1 updateGetDatePurchase(CPurchaseCon1 conn);

    // 修改采购单管理列表数据(c_details)
    public int updatePurchaseOrder(CPurchaseCon1 conn);

    // 修改采购单管理列表数据(c_purchase)
    public int updatePurchaseOrder2(CPurchaseCon1 conn);

    // 采购单入库详情
    public CPurchaseCon1 purchaseWarehousingDetails(CPurchaseCon1 conn);

    // 查看入货仓库
    public IncomingWarehouse getIncomingWarehouse(IncomingWarehouse conn);

    // 发送审核请求，将审核状态改成审核中
    public int sendApproval(CPurchaseCon1 conn);

    // 查询全部未审核
    public List<CPurchaseCon1> queryAllUnapproved(CPurchaseCon1 purchase);

    // 查询全部未审核（分页）
    public PageModel<CPurchaseCon1> queryAllUnapproved(CPurchaseCon1 purchase, PageModel<CPurchaseCon1> pageModel);

    // 查询全部未审核详情信息
    public CPurchaseCon1 queryOneUnapproved(CPurchaseCon1 conn);

    // 查询全部未审核详情信息下面部分
    public CPurchaseCon1 queryOneUnapprovedDown(CPurchaseCon1 conn);

    // 采购单审核提交
    public int purchaseOrderReviewAndSubmission(CPurchaseCon1 conn);

    // 采购单审核分类查询
    public List<CPurchaseCon1> vaguePurchaseOrderReview(CPurchaseCon1 conn);

    // 采购单管理信息分类查询（分页）
    public PageModel<CPurchaseCon1> vaguePurchaseOrderReview(CPurchaseCon1 conn, PageModel<CPurchaseCon1> pageModel);

    // 查询所有品牌
    public List<CPurchaseCon1> queryAllBrands(CPurchaseCon1 purchase);

    // 查询所有品牌类型
    public List<CPurchaseCon1> queryAllTypes(CPurchaseCon1 purchase);

    // 查询所有品牌型号
    public List<CPurchaseCon1> queryAllModels(CPurchaseCon1 purchase);

    // 查询所有厂商
    public List<CPurchaseCon1> queryAllFirms(CPurchaseCon1 purchase);

    public List<CPurchaseCon1> queryAllFirmNames(CPurchaseCon1 purchase);

    //添加，修改页面加载完成查询所有品牌
    public List<Brand> queryBrand();

    //根据品牌查询类型
    public List<Type> queryTypeByBrand(Brand brand);

    //根据类型查询型号
    public List<Product> queryModelByType(Type type);

    //根据商品id查商品信息
    public Product queryProductDetail(Product product);

    // 查询商品名
    public CPurchaseCon1 getProductId(CPurchaseCon1 purchase);

}
